<!DOCTYPE html> 
<!--
 Copyright (c) 2010 - 2017 TU Wien ACIN, fortiss GmbH
               2019 Johannes Kepler University Linz
  
 This program and the accompanying materials are made available under the
 terms of the Eclipse Public License 2.0 which is available at
 http://www.eclipse.org/legal/epl-2.0.

 SPDX-License-Identifier: EPL-2.0
 
 Contributors:
   Carolyn Oates, Monika Wenger, Jose Cabral
     - initial API and implementation and/or initial documentation
   Bianca Wiesmayr
     - text corrections
-->

<html lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>FAQ</title>
	<link rel="stylesheet" type="text/css" href="../help.css">
</head>

<body>
<h1 id="topOfPage">4diac IDE FAQ</h1>
	<ol>
		<li><a href="#4diacfaq1">When I open a certain perspective, a view element is missing, how can I get it back?</a></li>
		<li><a href="#4diacfaq2">Download not possible! Defined profile () for RMT_XXX.xxx not supported</a></li>
		<li><a href="#4diacfaq3">When I download my application, I get an <span class="errorMessage">UNSUPPORTED TYPE</span> error message in the <span class="view4diac">Deployment Console</span></a></li>
		<li><a href="#4diacfaq4">When I download my application, I get a <span class="errorMessage">STATUS ACCESS VIOLATION</span> error messages in the <span class="view4diac">Deployment Console</span></a></li>
		<li><a href="#4diacfaq5">When I download my application, I get a <span class="errorMessage">Create FB Instance failed</span> error</a></li>
		<li><a href="#4diacfaq6">When I want to download my application, I get an <span class="errorMessage">connection refused</span> message</a></li>
		<li><a href="#4diacfaq7">How do I use ARRAYs?</a></li>
		<li><a href="#4diacfaq8">What does <span class="command4diac">CLEAN Device</span> do?</a></li>
		<li><a href="#4diacfaq9">What does <span class="command4diac">KILL Device</span> do?</a></li>
	</ol>

<h1 id="faqFORTE">4diac FORTE FAQ</h1>
	<ol>
		<li><a href="#fortefaq1">Windows/Cygwin: The setup script runs to completion but when building the target I get strange compile errors</a></li>
		<li><a href="#fortefaq2">CMake/Cygwin: Can not find C and C++ compilers</a></li>
		<li><a href="#fortefaq3">CMake/Cygwin: Can not find RC Compilers</a></li>
		<li><a href="#fortefaq4">FORTE is C++, why are you then using the C-style include files for the standard C library instead of the C++ style include files?</a></li>
		<li><a href="#fortefaq5">Within my FORTE console, I get <span class="errorMessage">UDP-Socket Send failed: Network is unreachable</span></a></li>
		<li><a href="#fortefaq6">Within my FORTE console, I get <span class="errorMessage">connection closed by peer</span></a></li>
	</ol>

<h1>4diac IDE answers</h1>

	<ol class="listWithH2">

		<li>
			<h2 id="4diacfaq1">When I open a certain perspective, a view element is missing, how can I get it back?</h2>
			<p>There are two possibilities to do that:</p>
			<ul>
				<li>Reset Perspective: When right-clicking on the active perspective's name in the perspective switcher, you get a context menu with the option Reset. 
				By selecting this item, the perspective is reset to the initial configuration showing all views again and at their original place.</li>
				<li>Show View Menu: The menu item <span class="menu4diac">Window &rarr; Show View &rarr; Other</span> brings up a selection dialog that allows you to open any view. 
				By searching through the items you can reopen an accidentally closed view. 
				This option is especially of interest when you have a custom perspective layout you don't like to lose by resetting the perspective.</li>
			</ul>
			
			<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
		</li>

		<li>
			<h2 id="4diacfaq2">Download not possible! Defined profile () for RMT_XXX.xxx not supported</h2>
			<ul>
				<li>Go to the System Configuration</li>
				<li>Select the Device which is named in the error message</li> 
				<li>Change the properties <span class="menu4diac">Dialog &rarr; Advanced &rarr; Misc &rarr; Profile</span></li>
				<li>Set Profile to HOLOBLOC</li>
			</ul>
			
			<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
		</li>

		<li>
			<h2 id="4diacfaq3">When I download my application, I get an <span class="errorMessage">UNSUPPORTED TYPE</span> error message in the <span class="view4diac">Deployment Console</span></h2>
			<p>This message appears for multiple problems:</p>
			<ul>
				<li>Make sure that you have the source code (*.cpp, *.h) of all <span class="element4diac">Function Blocks</span> within your <span class="element4diac">Application</span>. 
				    Also check if all source files are listed within a <span class="fileLocation">CMakeLists.txt</span> file.</li>
				<li>Ensure that the missing Function Block is included in your built version of 4diac FORTE.
					<ul>
						<li>In IDE <span class="menu4diac">Window &rarr; Preferences &rarr; 4diac IDE &rarr; FORTE Preferences</span> the path to your correct <span class="fileLocation">forte.exe</span> has to be defined.</li>
						<li>Or start your <span class="fileLocation">forte.exe</span> directly (development tool specific)</li>
					</ul>
				</li>
			</ul>
			
			<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
		</li>

		<li>
			<h2 id="4diacfaq4">When I download my application, I get a <span class="errorMessage">STATUS ACCESS VIOLATION</span> error messages in the <span class="view4diac">Deployment Console</span></h2>
			<p>Check if you used <span class="element4diac">Composite Function Blocks</span> within your <span class="element4diac">Application</span>. Make sure that you have the source code (*.cpp, *.h) of all <span class="element4diac">Function Blocks</span> within the <span class="element4diac">Composite's Network</span>. Also check if all source files are listed within a <span class="fileLocation">CMakeLists.txt</span> file.</p>
			
			<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
		</li>

		<li>
			<h2 id="4diacfaq5">When I download my application, I get a <span class="errorMessage">Create FB Instance failed</span> error</h2>
			<p>Verify that the interface of the Function Block you want to download is the same as those available on your FORTE executable. 
			In case you download a Composite Function Block, please make sure that its Function Block Network matches the Function Block Network within your FORTE executable. 
			When in doubt, export your Function Block and compile FORTE before you download again.</p>
			
			<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
		</li>

		<li>
			<h2 id="4diacfaq6">When I want to download my application, I get a <span class="errorMessage">connection refused</span> message</h2>
			<p>Examine the following topics:</p>
			<ul>
				<li>Make sure that the port numbers used in the <span class="view4diac">Runtime Launcher</span> of the <span class="view4diac">Deployment</span> view are the same as those used for the <span class="element4diac">MGR_ID</span> of the <span class="element4diac">Devices</span> in the <span class="view4diac">System Configuration</span>.</li>
				<li>Check if FORTE runs on a different port</li>
				<li>Check in Task Manager (Windows) if an "old" crashed FORTE blocks the port</li>
				<li>Check if Monitoring has been started before downloading (FORTE only supports a single connection at the management interface)</li>
			</ul>
			
			<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
		</li>

		

		<li>
			<h2 id="4diacfaq7">How do I use ARRAYs?</h2>
			<p>When you create a new Function Block, choose the desired type for your array elements in the <span class="menu4diac">Type</span> drop down of the specific data and set the desired array size <span class="menu4diac">ArraySize</span>. 
			For initializing, put the values in curly brackets (e.g., <span class="inlineCode">{1,2,3}</span>).</p>
			
			<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
		</li>

		<li>
			<h2 id="4diacfaq8">What does <span class="command4diac">CLEAN Device</span> do?</h2>
			<span class="command4diac">CLEAN Device</span> deletes all existing <span class="element4diac">Resources</span> and the FBs in the <span class="element4diac">Resources</span>. 
			After <span class="command4diac">CLEAN Device</span>, you can deploy any other FB Network.
			
			<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
		</li>

		<li>
			<h2 id="4diacfaq9">What does <span class="command4diac">KILL Device</span> do?</h2>
			<span class="command4diac">KILL Devices</span> terminates FORTE.

			<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
		</li> 

	</ol>

<h1>4diac FORTE answers</h1>

	<ol class="listWithH2">

		<li>
			<h2 id="fortefaq1">Windows/Cygwin: The setup script runs to completion but when building the target, I get strange compile errors</h2>
			<ul>
				<li>First, check for any strange output of the setup script. Maybe your system misses something.</li>
				<li>Do you have spaces in the path to your FORTE? Some Cygwin versions have problems with these.</li>
			</ul>
			
			<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
		</li>

		

		<li>
			<h2 id="fortefaq2">CMake/Cygwin: Can not find C and C++ compilers</h2>
			CMake Errors: 
			<div class="code">your C compiler: CMAKE_C_COMPILER-NOTFOUND was not found. Please set CMAKE_C_COMPILER to a valid compiler path or name. 
		your CXX compiler: CMAKE_CXX_COMPILER-NOTFOUND was not found. 
		Please set CMAKE_CXX_COMPILER to a valid compiler path or name.</div>
			<p>In this case, you need to tick the check box Advanced and look for <span class="specificText">CMAKE_CXXX_COMPILER</span> and <span class="specificText">CMAKE_C_COMPILER</span> and set the path and executable for your C and C++ compiler. 
			As an example, for Cygwin this could be <span class="fileLocation">c:\cygwin\bin\g++-3.exe</span> for the C++ compiler and <span class="fileLocation">c:\cygwin\bin\gcc-3.exe</span> for the C compiler.

			<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
		</li> 

		<li>
			<h2 id="fortefaq3">CMake/Cygwin: Can not find RC Compilers</h2>
			CMake Error: 
			<div class="code">your RC compiler: CMAKE_RC_COMPILER-NOTFOUND was not found.
			 Please set CMAKE_RC_COMPILER to a valid compiler path or name.</div>
			<p>Again you need to tick the check box Advanced and look for <span class="specificText">CMAKE_RC_COMPILER</span>. 
			For Cygwin or MinGW on Windows, it needs a file called windres.exe (e.g., C:\cygwin\bin\windres.exe).
		
			<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
		</li> 

		<li>
			<h2 id="fortefaq4">FORTE is C++, why are you then using the C-style include files for the standard c library instead of the C++ style include files?</h2>
			<p>The main reason for this is that not all platforms provide the correct C++ include files. 
			This especially applies to real-time OS such as eCos where you can freely configure the supported features. 
			Using C++ style C include files on these platforms would pull lots of stuff from the compilers in and result in a bigger image or even worse it would not compile. 
			So as to current experience, C style include files are more reliable.</p>

			<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
		</li>

		<li>
			<h2 id="fortefaq5">Within my FORTE console, I get <span class="errorMessage">UDP-Socket Send failed: Network is unreachable</span></h2>
			<p>Consider to explicitly set up multicast IP routing in the kernel with the <span class="inlineCode">route</span> command. 
			This has been an issue on Raspberry Pi, where executing the following command resolved the problem:</p>
			<div class="code">route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0</div> 
			<p>The IPs are the desired multicast IPs.</p>

			<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
		</li>

		<li>
			<h2 id="fortefaq6">Within my FORTE console, I get <span class="errorMessage">connection closed by peer</span></h2>
			<p>The TCP port is opened by a server in the RMT_RES. 
			This server handles the communication with the tool for download and monitoring. 
			The message indicates the end of the download process when 4diac IDE disconnects.</p>

			<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
		</li>
	</ol>

	<p>Or <a href="../../html/startHere/startHere.html">Go to the Start Here Page</a></p>

</body>
</html>